# ДЗ

Требуется реализовать методы в классах
`WorkPlanner.cs`, `HuffmanCode.cs` и проверить их
тестами `WorkPlannerTest.cs` и `HuffmanCodeTest.cs`

*Запуск тестов:* 
**Visual Studio**
Откройте обозреватель тестов, выбрав Тест > Обозреватель тестов в верхней строке меню (или нажмите клавиши CTRL + E, T).
Запустите модульные тесты, нажав Запустить все (или нажмите клавиши CTRL + R, V).

## 1. Ищем самый выгодный вариант

★★☆☆☆

Вы пишете программу для компании по часовой сдаче техники в аренду. Каждое утро в компанию поступают заявки на почасовую
аренду техники. Заявки представляют собой массив целых чисел, в котором каждое значение соответствует стоимости
за час работы техники. Из-за ремонтов суммарное число свободных часов заранее не известно. В классе `WorkPlanner.cs`
надо реализовать метод, который сможет вернуть максимально возможную прибыль:

```C#
public static int FindMaximumIncome(int workRates[], int k)
```

## 2. Поиски менеджеров

★★★☆☆

В компании по сдаче техники в аренду работает офис и клиенты назначают встречи с менеджерами.
Встречи могут длиться разное время и могут проходить параллельно. Ваша задача реализовать метод

```C#
public static int FindMinimumManagers(int[][]intervals)
```

Который принимает двумерный массив заявок на встречи с менеджерами. В каждом вложенном массиве два числа: начало и
окончание встречи. Один менеджер может вести только одну встречу, поэтому вам надо возвратить минимальное количество
менеджеров, которые должны присутствовать на работе, чтобы все встречи состоялись.

## 3. Доставка грузов

★★★★☆

Компания так же занимается перевозкой различных грузов. Ваша задача написать программу, которая основываясь на данных о
количестве груза, его стоимости и объема позволит загрузить грузовик и получить максимальную прибыль. Для этого надо реализовать функцию

```C#
public static double LoadTruck(int truckCapacity, int[][] goods) 
```

Первым параметром идет вместимость грузовика, его объем. Вторым параметром идет двумерный массив:
вначале объем всего товара, а затем стоимость.
Товар можно брать не весь, а только какую-то его часть.
В качестве ответа верните максимальную стоимость товара, которым можно загрузить грузовик.

## 4. Пишем свой архиватор

★★★★☆

В классе `HuffmanCode.cs` реализуйте метод

```C#
public static long EncodeHuffman(string text)
```

На вход поступает строка, которую необходимо преобразовать в последовательность нулей и единиц.
Для этого надо воспользоваться алгоритмом Хаффмана.
После чего преобразовать полученную строку в `long` и вернуть получившееся число.

Hint:
В классе `long` есть метод `Parse (string s)`.